﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using Chilis.Proveedores.TransferObjects;

namespace Chilis.Proveedores.Communication
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IProveedoresService
    {

        #region " Metodos Propuesta "
        [OperationContract]
        IList<PropuestaDTO> SearchPropuesta(string idConvocatoria, string idProveedor, string nombrePropuesta);

        [OperationContract]
        string AddPropuesta(PropuestaDTO propuesta);
        #endregion

        #region " Metodos Convocatoria "
        [OperationContract]
        IList<ConvocatoriaDTO> GetConvocatorias();

        [OperationContract]
        IList<ConvocatoriaDTO> GetConvocatoriasSinEvaluacion();

        [OperationContract]
        ConvocatoriaDTO GetConvocatoriaById(int idConvocatoria);

        [OperationContract]
        IList<ConvocatoriaDTO> SearchConvocatoria(ConvocatoriaDTO filtro);
        #endregion

        #region " Metodos Convocatoria Proveedor "
        [OperationContract]
        ConvocatoriaProveedorDTO GetConvocatoriaProveedor(int idConvocatoria, int idProveedor);
        #endregion

        #region " Metodos Area "
        [OperationContract]
        IList<AreaDTO> GetAreas();
        [OperationContract]
        AreaDTO GetArea(int idArea);
        [OperationContract]
        string AddArea(AreaDTO area);
        [OperationContract]
        string UpdateArea(AreaDTO area);
        [OperationContract]
        string DeleteArea(int idArea);
        [OperationContract]
        IList<AreaDTO> SearchAreas(string nombre);
        #endregion

        #region " Metodos Estado Convocatoria "
        [OperationContract]
        IList<EstadoConvocatoriaDTO> GetEstadosConvocatoria();
        #endregion

        #region " Metodos Proveedor "
        [OperationContract]
        IList<ProveedorDTO> GetProveedoresPreseleccionados(int idConvocatoria);
        [OperationContract]
        ProveedorDTO GetProveedor(int idProveedor);
        #endregion

        #region " Metodos Criterio "
        [OperationContract]
        IList<CriterioDTO> GetCriterios();
        [OperationContract]
        CriterioDTO GetCriterio(int idCriterio);
        [OperationContract]
        string AddCriterio(CriterioDTO criterio);
        [OperationContract]
        string UpdateCriterio(CriterioDTO criterio);
        [OperationContract]
        string DeleteCriterio(int idCriterio);
        [OperationContract]
        IList<CriterioDTO> SearchCriterios(string nombre);
        #endregion

        #region " Metodos SubCriterio "
        [OperationContract]
        IList<SubCriterioDTO> GetSubCriterioxIdCriterio(int idCriterio);
        #endregion

        #region " Metodos Evaluacion "
        [OperationContract]
        string AddEvaluacion(EvaluacionDTO evaluacion);
        #endregion
    }

}
